如果這30多篇系列文只能選一篇推薦的話
那我絕對毫不猶豫的就只會推薦這篇
這整個系列文最最最重要的事情就是要跟各位推薦wisdompeak這位大神的教學影片
以及他整理的leetcode 題目分類 Github
所有不認識這位大神的人可以去搜尋一下他的所有影片和教學:
https://www.youtube.com/playlist?list=PLwdV8xC1EWHrtgsYCcDTXIMVaHSlsnLzL
(根據網路上的公開資訊)wisdompeak是現職灣區的谷歌工程師
本名Guan Hui-Feng
是殘酷刷題群(注1)的群主(大家稱之為群主以下簡稱官神)
leetcode contest rating 2500分左右
可能不是像tm william lin一樣的天才型選手
但是在一般人做得到的紀律和努力和持之以恆尤其樂於分享這部分
官神絕對是世界頂尖,不可一世的大神
如果官神有看到這系列文
我想要獻上12萬分的感謝
wisdompeak實在惠我良多,而且也相見恨晚
1.題目如何自己想出來
2.寫code的細膩度
筆者雖然推薦叫大家想不去來就去看解答
但是其實在Leetcode討論區直接看答案效果很差
正因為官神不是像tourist uwi dreamoonAA那樣3200+的天才
所以他的影片很棒的地方是他會介紹在他第一次做某個題目(通常是leetcode contest的時候)
看到了題目的一些限制之後
他會有什麼樣的簡單想法 會從哪裡出發跟怎麼下手
整理常見的套路和想法給你
而通常這些想法都是你我都想得到的
但我們和大神的差距就是常常會卡在一些關鍵的地方沒有想出來
(跟以前數學課天才畫輔助線一樣畫一畫題目就變得很簡單)
他的影片還會再仔細介紹
這些想法有了之後還可以有什麼的樣子的觀察
可以從題目裡面看到那些可以利用的性質
有什麼可以預處理先算好壓時間複雜度的東東和條件
如果是可以畫圖講解的題目他的影片裡面也都會有精美的不同顏色的手繪講解
最後一氣呵成寫出bug free的解
筆者每天中晚餐都會看個一兩題講解影片配飯吃
三個月以後倍感功力大增
他有大概1100+個影片
沒記錯我當初應該看了600多個
現在回頭看發現90天內看600多個15~50min的影片,
花的時間也是蠻多的(雖然我都用1.25x看)
還沒有算上在Leetcode網站上花的時間
感覺自己可能大概因為這些影片和整理才能夠從1800進步到2200
雖然官神沒有特別教
但是看他的影片看多了似乎也會慢慢掌握
有一些明知演算法沒什麼難度但是要能夠一次submit就能AC非常困難的hard題
像是
https://leetcode.com/problems/text-justification/
https://leetcode.com/problems/booking-concert-tickets-in-groups/
這些題目,也很推薦讀者看看官神是怎麼樣整緒他的邏輯,能夠做到幾乎寫完就bug free的
除了對GoogleTW面試而言這點非常重要
筆者覺得這也是對平常工作非常有幫助的地方
官神的影片除了這些優點,筆者還想要列出他的偉大之處:
整個leetcode 現在2400題
扣掉那些沒什麼好講解的easy和難度是easy的medium題目
官神錄了大概1100多題的影片講解
(每個影片長度平均是30分鐘左右)
能夠維持每週錄2~4個左右的影片直播講解穩定產出
不知道要花多少時間(尤其官神還要帶娃跟全職工作)
放眼整個youtube和leetcode平台,不只華語創作者
幾乎沒有幾個人的講解和整理有做的像官神這麼精緻和且細膩的
(慶幸自己是懂世界上最多人在用的語言的中文仔)
(另一個影片做的很多的是 花花醬
但是花花醬的影片比較適合強者看
有點像是把這一題的所有最佳解直接搬出來仔細講解
但就不太像官神一樣講解這題要怎麼發想)
光是錄影片就夠猛了
剩下影片沒有cover到的幾乎每一題 (除了送分簡單easy)
在他的github裡面都有文字詳解和c++的code解答
甚至還常常有兩三種不同演算法或是不同複雜度的作法
還有很實用的常用code template等等
大家刷題刷到不會的題目與其看解答區
不如先來找官神有沒有寫過文字詳解
leetcode參賽次數史上前三
(推薦一個CP分數整理網站:https://clist.by/resource/leetcode.com/)
即使他之前跑去美國國家公園玩還是硬要在車上參賽
而且參賽也不是隨便寫寫不管分數不管時間的
大家可以發現官神基本上還是常常把第四題寫出來的...
這麼扎實的面試訓練影片
在台灣的某些課程平台 分集賣,每集賣個一兩萬台票
以轉職成功的薪水加乘來說,一點也不過分
但官神之所以為神的地方就是這些影片和github
甚至你要加入殘酷群也是完全免費的
(只是裡面好像真的蠻殘酷的)
唯一需要付錢的地方是他youtube頻道的會員訂閱
不同等級有不同的權利:
一览无余
可以观看LeetCode加锁题的视频讲解
有问必答
Up主可以回答你在视频留言中提出的任何问题。
点石成金
可以指定群主视频讲解LeetCode任意题解。
但這些訂閱也是便宜到不行,沒記錯一個月只要花$1 ~ $3美金
筆者強烈呼籲有在刷題有在看官神影片的讀者去訂閱他的頻道
筆者每個月捐NTD75
讓這麼優質的華語刷題頻道能夠更有動力持續下去
(請多多轉發這篇文,讓更多的人能看到官神的影片)
如果你近期或是之後有打算面試谷歌
請一律在留言區留言
以獲得好運官神帶來的祝福
但就算不訂閱會員
在他的youtube影片上留言和討論
官神基本上也是有問必答
另外
雖然推這麼多官神影片
但是解答區也是有不少大神的code和解答都幫助超大的
建議每一題只要看到這些人回答就應該點開來看
votrubac (leetcode完刷的男人)
StefanPochmann
通常變數命名/可讀性和code長度和簡潔程度是有一點衝突的
但是這些大神基本上通通都做到完美
code寫的又乾淨又短又好懂
自己寫要寫落落長又要加一堆if else的 code
像是Range Module等等的題目
都可以從votrubac的code學到很多
至於leetcode社群最愛的lee215寒神
雖然是分數超高的競賽型選手
甚至常常還冒出比leetcode當初官方solution複雜度還低的神解法
像是這題:https://leetcode.com/problems/maximum-width-ramp/
但是lee神歸神
我覺得初學者想要從他的code學東西是相當困難的
lee常常code寫的很短,陣列或變數照ABC取名(為了優化coding速度應該大部分競賽仔都這樣)
或是提供一些新手很難自己想到的厲害解法,
所以對新手而言常常會看得很困惑
或是還不懂套路但是浪費時間去想他的code為什麼會work
(像是某些sliding window系列他的題解)
有點像是春秋一樣微言大義,懂的人看得很開心但是初學者會很痛苦
雖然解答寫的很簡略,
但lee215也diss過大家說要他就是免費分享
很多地方已經PO過他的code解釋
付他錢他當然願意解釋仔細但是各位免費仔不要一直當伸手牌他很困擾
在此還是非常非常感謝lee215大神對leetcode社群的種種貢獻的
另外在寫Python的讀者又不排斥聽英文的可以看另外一個大神的頻道
Programming Live with Larry - YouTube
筆者只看過一兩集就不多做評論
注:殘酷刷題群
殘酷刷題群是一個在微信上的leetcode變態愛好者們互相激勵和懲罰的一個群組
群組裡面充滿2800+ 2600+ 2400+ 的高手 和一堆2000+
每次比賽解完四題的選手裡面幾乎都固定有10% ~ 20%是殘酷群的群友
就我所知的規則是
如果缺賽或是比賽表現不好則要付紅包給表現比較好的之類的
著實殘酷
群主每天會出殘酷群的每日一題也要打卡,沒寫就被罰錢
(因為leetcode的每日一題太簡單了...)
筆者本人沒有在用微信所以就沒有入群
但是在刷題的那段時間裡筆者本人也是沒有缺席任何一場比賽和每日一題(每天都做好多題)
殘酷榜
在残酷刷题群里是什么样的体验?